<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<div>
    <ul id="ul">

    </ul>
</div>

<body>
    <script>
        // 第一天
        // 什么是JAVASCRPT
        // 由dom bom EcmaScript组成  俗称JS
        // 脚本语言  弱语言  面向对象编程语言

        // 5中基本数据类型
        //               number       string     boolean     null     undefined
        //                                                                              function     
        // typeof        "number"     "string"   "boolean"    "object"  "undefined"     "function"     
        // 第二天
        // dom操作  
        // dom.getElementById("id名称")   获取单个元素
        // dom.getElementsByTagName("标签名称")  获取多个元素  类数组对象
        // dom.id
        // dom.className 
        // dom.style.属性 
        // dom.innerHTML

        // 第三天
        // 声明标识符:变量,函数,属性,形参
        // 必须以$ _ 字母开头
        // 区分大小
        // 一般驼峰式命名

        // 声明变量 
        // 使用 关键字 var 
        // 用var 声明的变量具有变量提升的效果
        // 声明多个变量用逗号隔开

        // 数据类型转换
        // 数字
        // Number()
        // Number(null)      =>0
        // Number("")        =>0
        // Number(undefined) =>NaN
        // Number(true)      =>1
        // Number(false)     =>0
        // Number("+1")      =>1

        // parseInt() 取整
        // parseInt("a")         =>NaN
        // parseInt("123a")      =>123
        // parseInt("123a123")   =>123
        // parseInt("123.123")   =>123
        // parseInt(".123")      =>NaN
        // parseFloat()  取小数
        // parseFloat(".123")    =>0.123


        // isNaN()  

        // isNaN(true)  => true => 1 => false
        // isNaN(null)  => null => 0 => false

        // 布尔
        // Boolean()
        // "" false 0 undefined NaN Null
        // 字符串
        // String()
        // toString() //undefiend 和null 没有toString()   报错

        // 运算符
        // 算数运算符
        // 一元运算符
        // ++ --
        // 二元运算符
        // + - * / % 
        // 赋值运算符
        // = += -= *= %= /=
        // 比较运算符
        // > < >= <= == != === !==
        // 逻辑运算符
        // ! && ||
        // 三元运算符
        // 1 ? 2 : 3

        // 条件语句
        // if
        // switch
        // 循环语句
        // for
        // while
        // do-while
        // 函数

        // 对象
        // 日期对象 Date
        // 数学对象 Math

        // 数组

        // 字符串


        // 三元表达式表达式2
        // 表达式1的结果 转布尔为真  返回表达式2的结果 
        // 表达式1的结果 转布尔为假  返回表达式3的结果 
        // 表达式1 ? 表达式2 : 表达式3s


        // console.log(new Date("aseqwe 2016"))

        // var arr = [1, 2, 3]
        // console.log(arr[0])

        // var arr = [1, 2, 3, 4, 5]


        // [1, 2, 3, 4, 5, 6, 7, 8, 9]

        // console.log(arr.concat(6, 7, 8, [9]))


        // function f() {

        // }

        // 数字
        // var num = 1  //直接量
        // var num = new Number(1)
        // //字符串
        // var str = "1"
        // var str = new String("1")
        // // 布尔
        // var flag = true
        // var flag = new Boolean(true)

        // // 函数
        // function fn() { }
        // var fn = function () { }
        // // 数组
        // var arr = [1, 2, 3]
        // var arr = new Array(1, 2, 3)
        // // 对象
        // var obj = { name: 1 }
        // var obj = new Object({
        //     name: 1
        // })


        // 函数
        // 什么是函数
        // 怎么声明
        // 调用
        // 形参
        // 实参
        // 形参和实参的关系
        // arguments和实参的关系  
        // 函数的返回值
        // 作用域


        // 声明一个函数 fn   函数返回入传入实参的和



        // 数组
        // 字符串
        // 对象

        // var obj = {
        //     name: 123
        // }


        // 日期对象
        // Math




        // Math.random()  //一个随机数  [0-1)
        // // [m, n)
        // Math.floor(Math.random() * (n - m) + m)

        // [m, n]

        // function random(m, n) {
        //     return Math.floor(Math.random() * (n - m + 1) + m)
        // }


        // Math.round()   //四舍五入
        // Math.ceil()    //向上取整
        // Math.floor()   //向下取整
        // Math.max()     //最大值
        // Math.min()     //最小值


        // 数组的方法
        // 
        // var arr = ["a", "b", "c"]

        // push         pop             shift            unshitf
        // 尾部加入数组  尾部删除         头部删除           头部推入
        // 推入后原数组的长度  删除项           删除项        推入后原数组的长度
        // 随便         没有              没有               随便
        // 会             会               会                 会


        // concat
        //  作用    // 拼接数组
        //  返回值  // 拼接后的新数组
        //  参数    // 每一个被拼接的数据
        //          // 不会

        //  slice
        // 1,5
        // 1,2,3,4,
        //  返回截取的新数组


        // var arr = [1, 2, 3, 4, 5, 6]

        // var arr1 = arr.splice(2, 0, 99)

        // console.log(arr1)  //=>  []
        // console.log(arr)   //=>  [1, 2, 99,3, 4, 5, 6]


        // splice(参数1，参数2)
        // 返回值  返回新数组   新数组里面放着被删除的数据
        // 参数1 ： 删除项开始下标
        // 参数2 ： 删除数量
        // 参数3...参数n  插入的数据

        // indexOf()
        // 返回值  下标 | -1   
        // 查找方向 从左到右  返回第一个值出现的下标
        // lastIndexOf()


        // var arr = [1, 2, 3, 4]

        // var str = arr.join("")

        // console.log(str)

        // var arr = [1, 2, 3, 4]
        // var arr1 = arr.reverse()

        // console.log(arr1)
        // console.log(arr)


        // var arr = [1, 2, 3, 4, 5]

        // arr.forEach(function (item, index) {
        //     console.log(item)
        // })


        // // map
        // var arr1 = arr.map(function (item, index) {
        //     return item * 5
        // })

        // console.log(arr1)
        // // filter

        // // some

        // // every

        // // reduce

    









    </script>
</body>

</html>